#ifndef REGISTERDIALOG_H
#define REGISTERDIALOG_H

#include <QDialog>
#include "global.h"

namespace Ui {
class RegisterDialog;
}

class RegisterDialog : public QDialog
{
    Q_OBJECT

public:
    explicit RegisterDialog(QWidget *parent = nullptr);
    ~RegisterDialog();

private:
    /**
     * @brief showTip 提示标签显示内容
     * @param str     提示字符串
     * @param b_ok    true正确显示，false错误显示
     */
    void showTip(QString str, bool b_ok);

    /**
     * @brief initHttpHandlers 初始化http请求结果处理器
     */
    void initHttpHandlers();
    QMap<ReqId, std::function<void (const QJsonObject&)>> _handlers;

private slots:
    /**
     * @brief on_varifyBtn_clicked 获取验证码按钮被点击，发送相关请求获取验证码
     */
    void on_varifyBtn_clicked();

    /**
     * @brief SlotRegModFinish 注册请求完成的回调函数
     * @param id               请求id
     * @param res              请求返回的结果
     * @param err              请求状态
     */
    void SlotRegModFinish(ReqId id, QString res, ErrorCodes err);

private:
    Ui::RegisterDialog *ui;
};

#endif // REGISTERDIALOG_H
